iT邦幫忙

2024 iThome 鐵人賽

DAY 13
0
Python

讓Python不拍勝-實用套件實作與介紹系列 第 13

[DAY13]使用Python進行資料處理-Pandas(五)

  • 分享至 

  • xImage
  •  

這篇將會繼續介紹如何在 Series 和 DataFrame 上面做元素的操作。

今天來介紹兩個強大的函數 .loc() 和 .iloc,這兩個函數提供非常方便的提取元素方式,下面就趕快來看一下如何使用吧。

利用 .loc() 和 .iloc 函數提取元素

Series 物件的示範

先建立 Series 的物件

data_series = pd.Series(['apple', 'banana', 'cat', 'dog'], index=['a', 'b', 'c', 'd'])
print(data_series)

輸出結果

a     apple
b    banana
c       cat
d       dog
dtype: object

.loc() & .iloc() 的示範

  • .loc() 是利用索引標籤來提取值
  • .iloc() 是利用索引位置來提取值
print('#1')
print(data_series.loc['b']) #提取索引標籤為b的值
print('\n#2')
print(data_series.loc['b':'d']) #提取索引標籤b到d的值
print('\n#3')
print(data_series.iloc[0]) #提取索引位置為0的值
print('\n#4')
print(data_series.iloc[0:3]) #提取索引位置為0-2的值
#這裡要注意提取的值不包含索引位置3喔
#loc&iloc都可以利用類似提取串列(list)元素的方式(切片法)提取元素

輸出結果

#1
banana 

#2
b    banana
c       cat
d       dog
dtype: object  

#3
apple 

#4
a     apple
b    banana
c       cat
dtype: object 

DataFrame 物件的示範

建立 DataFrame 的物件

dict_ = {'guitar': [2, 3, 4], 'bass': [5, 6, 7], 'keyboard': [8, 9, 10]}
instrument = pd.DataFrame(dict_, index=['A', 'B', 'C'])
print(instrument)

輸出結果

   guitar  bass  keyboard
A       2     5         8
B       3     6         9
C       4     7        10

.loc() 的示範
在 DataFrame 上,規則大概就是 .loc([index, column]) #index等於row

print('#1')
print(instrument.loc['B']) #提取索引標籤為B的整列
print('\n#2')
print(instrument.loc['B':'C']) #提取索引標籤B到C整列
print('\n#3')
print(instrument.loc[:, 'guitar']) #提取索引標籤guitar整欄
print('\n#4')
print(instrument.loc[:, 'guitar':'bass']) #提取索引標籤guitar到bass整欄
print('\n#5')
print(instrument.loc['A':'B', 'guitar':'bass']) #提取索引標籤A到B,索引標籤guitar到bass的值
print('\n#6')
print(instrument.loc['B', 'guitar']) #提取索引標籤B,索引標籤guitar的值
print('\n#7')
print(instrument.loc['C', 'bass']) #提取索引標籤C,索引標籤bass的值

輸出結果

#1
guitar      3
bass        6
keyboard    9
Name: B, dtype: int64

#2
   guitar  bass  keyboard
B       3     6         9
C       4     7        10

#3
A    2
B    3
C    4
Name: guitar, dtype: int64

#4
   guitar  bass
A       2     5
B       3     6
C       4     7

#5
   guitar  bass
A       2     5
B       3     6

#6
3

#7
7

.iloc() 的示範
與上面.loc()的範例一樣,改成索引位置而已

print('#1')
print(instrument.iloc[1])
print('\n#2')
print(instrument.iloc[1:3])
print('\n#3')
print(instrument.iloc[:, 0])
print('\n#4')
print(instrument.iloc[:, :2])
print('\n#5')
print(instrument.iloc[:2, :2])
print('\n#6')
print(instrument.iloc[1, 0])
print('\n#7')
print(instrument.iloc[2, 1])

輸出結果

#1
guitar      3
bass        6
keyboard    9
Name: B, dtype: int64

#2
   guitar  bass  keyboard
B       3     6         9
C       4     7        10

#3
A    2
B    3
C    4
Name: guitar, dtype: int64

#4
   guitar  bass
A       2     5
B       3     6
C       4     7

#5
   guitar  bass
A       2     5
B       3     6

#6
3

#7
7

下一篇將介紹更多 Pandas 相關的函數操作喔!


上一篇
[DAY12]使用Python進行資料處理-Pandas(四)
下一篇
[DAY14]使用Python進行資料處理-Pandas(六)
系列文
讓Python不拍勝-實用套件實作與介紹30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言